package com.suzka.service.impl;

import com.suzka.mapper.CustomerMapper;
import com.suzka.pojo.Customer;
import com.suzka.service.CustomerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 客户服务实现类，提供客户相关的业务操作
 * 包括客户信息的增删改查及按名称搜索功能
 */
@Service
public class CustomerServiceImpl implements CustomerService {

    //依赖注入customerMapper接口
    @Autowired
    private CustomerMapper customerMapper;

    /**
     * 查询所有客户信息
     * @return 包含所有客户信息的列表，若无客户则返回空列表
     */
    @Override
    public List<Customer> findAll() {
        return customerMapper.findAll();
    }

    /**
     * 根据ID查询客户信息
     * @param id 客户ID
     * @return 对应ID的客户对象，若不存在则返回null
     */
    @Override
    public Customer findById(Integer id) {
        return customerMapper.findById(id);
    }

    /**
     * 保存客户信息
     * @param customer 需要保存的客户对象
     * @return 保存成功返回true，失败返回false
     */
    @Override
    public boolean save(Customer customer) {
        return customerMapper.insert(customer) > 0;
    }

    /**
     * 更新客户信息
     * @param customer 需要更新的客户对象
     * @return 更新成功返回true，失败返回false
     */
    @Override
    public boolean update(Customer customer) {
        return customerMapper.update(customer) > 0;
    }

    /**
     * 根据ID删除客户信息
     * @param id 需要删除的客户ID
     * @return 删除成功返回true，失败返回false
     */
    @Override
    public boolean deleteById(Integer id) {
        return customerMapper.deleteById(id) > 0;
    }

    /**
     * 根据名称关键词搜索客户信息
     * @param keyword 搜索关键词
     * @return 包含匹配关键词的客户列表，若无匹配则返回空列表
     */
    @Override
    public List<Customer> searchByName(String keyword) {
        return customerMapper.searchByName(keyword);
    }
}
